package com.xianbeiying.app.ckgl.data;

/**
 * 设备对象
 * 
 * @author MiJunQiang
 *
 */
public class EQP {

	/**
	 * 电磁阀-->除湿器
	 */
	public static final byte EQP_TYPE_EMV = 0X07;

	/**
	 * 风机
	 */
	public static final byte EQP_TYPE_FAN = 0X03;

	/**
	 * 卷帘机
	 */
	public static final byte EQP_TYPE_RSM = 0X04;
	/**
	 * 加热器
	 */
	public static final byte EQP_TYPE_HEALER = 0X06;
	/**
	 * 土壤湿度传感器
	 */
	public static final byte EQP_TYPE_SOIL_HUMIDITY_SENSOR = 0X40;

	/**
	 * 土壤温度传感器
	 */
	public static final byte EQP_TYPE_SOIL_TEMPERATURE_SENSOR = 0X41;

	/**
	 * 土壤温湿度传感器
	 */
	public static final byte EQP_TYPE_SOIL_HUMTEMP_SENSOR = 0X42;

	/**
	 * 空气湿度传感器
	 */
	public static final byte EQP_TYPE_AIR_HUMIDITY_SENSOR = 0X48;

	/**
	 * 空气温度传感器
	 */
	public static final byte EQP_TYPE_AIR_TEMPERATURE_SENSOR = 0X49;

	/**
	 * 空气温湿度传感器
	 */
	public static final byte EQP_TYPE_AIR_HUMTEMP_SENSOR = 0X4A;
	/**
	 * 终端ID，指首部控制器ID或者田间控制器ID。0x00代表首部控制器，0x01-0x40代表田间控制器ID，0xFF代表首部控制器+
	 * 所有的田间控制器
	 */
	public byte CTRLID = 0X00;

	/**
	 * 设备类型,另外，为了使用上的方便，对首部类型编号为0x80，对田间控制器类型编号0x81，0x8F表示首部和田间。用0xFF表示所有的设备。
	 */
	public byte EQPTYPE = 0X00;

	/**
	 * 表示指定类型的设备在终端上的编号，每种设备单独编号。编号从0x00-0x0F。其中0x0F表示所有的该种类型设备。对首部控制器和田间控制器自身，
	 * 该字段固定为0x00
	 */
	public byte EQPID = 0X00;

	/**
	 * 构造方法
	 *
	 * @param EQPTYPE
	 * @param EQPID
	 */	public EQP(byte CTRLID, byte EQPTYPE, byte EQPID) {
		this.CTRLID = CTRLID;
		this.EQPTYPE = EQPTYPE;
		this.EQPID = EQPID;
	}

	@Override
	public int hashCode() {
		return CTRLID * 100 + EQPTYPE * 10 + EQPID;
	}

	@Override
	public boolean equals(Object o) {
		if (!super.equals(o) && (o instanceof EQP)) {
			EQP other = (EQP) o;
			return this.CTRLID == other.CTRLID && this.EQPTYPE == other.EQPTYPE && this.EQPID == other.EQPID;
		}
		return super.equals(o);
	}

	@Override
	public String toString() {
		return String.format("CTRLID:%s,EQPTYPE:%s,EQPID:%s", CTRLID, EQPTYPE, EQPID);
	}

}